package org.huangrui.design.pattern.proxy.staticproxy;

public class AdminServiceProxyTwo implements AdminServiceTwo {//代理类2
    private final AdminServiceTwo target;

    public AdminServiceProxyTwo(AdminServiceTwo target) {
        this.target = target;
    }

    @Override
    public void adminOperationTwo() {
        // 前置处理
        System.out.println("前置处理操作（例如：事务开启）");

        //权限校验，执行被代理类的方法
        String user = Session.getUser();
        if ("admin".equals(user)) {
            System.out.println(user + "请求的操作被允许");
            target.adminOperationTwo();
        } else {
            System.out.println(user + "请求的操作被拒绝");
        }

        // 后置处理
        System.out.println("后置处理操作（例如：事务提交等）");
    }
}
